Context specific analysis

ABSTRACT

An automatic critique of resumes, cover-letters, and/or other types of documents is provided. The invention employs an input document, a processing device, and a set of rules specific to the document type. The processing device searches the document for specific patterns described by the rules, generates a list of potential errors in the document, generates advice on how to correct the errors and may produce various figures of merit for the document.

This application is a divisional application of U.S. patent applicationSer. No. 12/714,470, “Context Specific Analysis,” filed on Feb. 27,2010, by Carmel, et al., Attorney Docket No. WINW-01001US2, which is acontinuation application of U.S. patent application Ser. No. 10/370,931,“CONTEXT SPECIFIC ANALYSIS,” filed on Feb. 20, 2003, by Carmel, et al.,now U.S. Pat. No. 7,689,431, which claims the benefit of U.S.Provisional Application No. 60/373,864, “Method And Apparatus ForAutomatic Critique Of Resumes And Letters,” filed on Apr. 17, 2002, allof which are incorporated herein by reference in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention pertains generally to processing of text documents, and inparticular to methods of evaluating documents using criteria that isspecific to the type of document being evaluated.

2. Description of the Related Art

The task of creating a resume that follows the conventions expected inthe industry, while being technically correct, and including appropriateaction words, and the like, is a time consuming and error prone process.Typically, the job seeker is not savvy as to the metrics used by theprospective employer in evaluating the formal aspects and generalcontent of the resume. It will be appreciated that due to the largevolume of resumes received, a number of companies will sort theseresumes according to a number of subjective criteria, which are oftennot strictly related to the position being filled. The sorting of theresumes in this manner speeds the process of finding candidates thatappear most suitable and serious about the position, and reduces theoverhead inherent in the hiring process. Often resumes are firstfiltered by the human resources department, or other personnel, whereinonly resumes ranking highly in the sorting process are viewed in moredetail by human resources personnel or by the manager seeking to fill aparticular position for which the resume has been sent. Job seekerswould benefit from having their resumes checked and improved prior tosubmission.

Spelling and Grammar Checks

A number of tools exist for checking written documents, but these aregenerally provided to check generic document characteristics such asspelling and grammar, and allow for correction.

Spelling and grammar checking routines are incorporated in manyword-processing programs to aid the user in generating a grammaticallycorrect document. These tools are designed to check documents written ina specific language, but usually make no consideration for the specifictype of document. Hence, they would apply the same set of rules toresumes, to cover letters, and to chocolate cake recipes. When applyingspell-check or grammar-check to a resume, one would expect the detectionof language errors, but will not expect to detect violations of even themost basic rules of effective resume and cover-letter writing.

Document-Specific Checks—Microsoft Power Point

One software tool that offers checks beyond grammar and spelling isPower Point, published by Microsoft from Redmond, Wash. The programtakes advantage of the specific nature of the document—slidepresentations—and applies several document-specific checks. One of theautomatic checks verifies that slide titles use a user-selectable case(UPPER case, lower case, or Sentence case). Another check verifies thatthe body text of the presentation uses a user-selectable case (UPPERcase, lower case, or Sentence case). Another check verifies thatend-punctuation of paragraphs uses a user-selectable character such as aperiod. Another check requires that the total number of fonts used inthe presentation does not exceed a user-specified number, such as 3.Another check verifies that text size of the slide title is larger orequal to a user-specified number of points such as 36. Another checkverifies that the text size of the body text is larger or equal to auser-specified number of points such as 20. Another check verifies thatthe number of bullet points per slide does not exceed a user-specifiednumber such as 6. Another check verifies that the number of lines perbullet point does not exceed a user-specified number such as 2.

Document Specific Checks—Performance Appraisal Writers

A program called Avantos Review Writer, published by Avantos PerformanceSystems of Emeryville, Calif. in 1994, was designed to assist managersin writing performance appraisals for their employees. The programprovides various tools for writing the performance appraisal as well aschecking it for conformance to a set of rules. These checks include“Legal Check,” “Originality Check,” and “Completeness Check.” The “LegalCheck” will flag, for example, the word “baby” as a potential referenceto either age or behavior, which may not be appropriate in a performanceappraisal document. The “Originality Check” will flag any case where theexample text provided by the program was left unchanged in the finalperformance appraisal document. The “Completeness Check” looks forfields that were left blank and should have been filled to create avalid performance appraisal. Another performance appraisal tool,Performance Now, published by Knowledge Point of Petaluma, Calif. in1994, also offered tools for writing performance appraisals and checkingthem for language that may reflect employment discrimination.

Resume Creation Tools

Several tools exist which are directed at the creation of winningresumes and cover letters, such as WinWay® Resume Deluxe, published byWinWay Corporation of Folsom Calif. Resume creation is a constantlyevolving field, which seeks to maximize the efficiency with whichresumes are created and the effectiveness of the completed resumes.

Specific Checks

One important area in resume creation involves the checking of the jobhistory section, for example, verification of employment dates. Oneresume-writing program, “PFS:Resume and Job Search Pro” by The LearningCompany of Cambridge, Mass., includes a “Verify Dates” feature. Providedthat the user has entered their employment dates into the requiredfields, the “Verify Dates” feature checks “employment dates” conformanceagainst a set of rules. For example, the “employment dates” field mustconform to a standard date format such as “March 2000 to June 2001”,“March 2000”, “1990 to present.” The program checks for formatconsistency of dates. Many dates formats are allowed, such as “1998”,“march 1998” and “1/31/1998.” The program checks that all dates withinthe same resume section use the same format. A string such as “very longago” in the “employment date” field would be flagged as an error, withan acceptable year range including 1900-2100. A year such as “1790”could be considered as an error. The program also requires all dates toconform to the “reverse chronological order” rule, that is, the mostrecent job should be listed first. Any significant time gaps betweenjobs listed in the chronological section of the resume are flagged aserrors. Date-range overlaps are flagged as a violation of the “reversechronological order” rule. Upon detection of possible errors, thisprogram reports the error to the user and may suggest a correction.While date checking is indeed a useful feature, this particularresume-writing program falls short in recognizing and reporting specificdate cases. For example, if a resume contains two jobs with overlappingtime periods, the program will report this as a violation of the“reverse chronological order” rule instead of pointing out that there isa date overlap, which could be a benign situation. Also, the programdoes not check the time-sequence ordering of schools listed in theeducation section. Further, and most importantly, this program fallsshort of protecting the user from many other potential pitfalls specificto the field of resume and letter writing, and cannot check resumesfiles unless those files contain the employment dates in certaindesignated fields.

Limitations of Existing Art

Application completeness is often a problem area in resume and lettercreation and applicants may leave out important fields such as theirfull name, street address, phone number, alternate/cell-phone number, ore-mail address. When describing their work experience, applicants mayforget to include employment dates, employment location, or job title.Applicants may describe a job just by job title and employment dates,without adding some helpful information about their specific tasks andaccomplishments. When describing their education, applicants may neglectto include important information such as name of the school, degreeobtained, or graduation date. Applicants may even omit whole sections ofthe resume such as Experience or Education. Such omissions could resultin their resume being discarded.

Additionally, even if a required data item is entered, problems canarise with the applicant entering the wrong information, orinappropriate information within a given field. For example, anapplicant who is using a template for writing their resume may leavetemplate fields such as “<put your job title here>” or “<put number ofexperience years here>” intact. Also, an applicant could enterinformation about their age, religion, gender, sexual preference, whereany of these items would be very troubling to a human resourceprofessional who is trying to avoid potential discrimination complaints.When entering a web page address, applicant may accidentally enter anincorrect web address—one that leads nowhere, or even worse—one thatleads to a page containing information that may reduce, rather thanenhance their employment prospects. Likewise, applicants may enter anemail address that is incorrect, thus making it very likely that anyemployer response will go unnoticed. Applicants may also make the commonmistake of providing a phone number, street address or email address ofa current employer; something their current or prospective employer mayconsider inappropriate. Even if the phone number is personal, theapplicant may provide a phone number that is not monitored at all hoursof the day, and neglect to make sure there is an answering machineconnected to that number.

When describing their work experience, applicants may overlook problemswith the dates associated with each job. Common problems include dateoverlap between two jobs, date gaps, where it appears that the applicantwas unemployed for any period of time, or wrong ordering of the jobs,where the jobs are not ordered in reverse-chronological-order as iscustomary in resumes. Such date errors may cause a potential employer todiscard an otherwise-acceptable resume and thus will reduce the chancesof employment.

Furthermore, applicants may incorrectly or less effectively order theelements within the resume, or cover letter, and reduce their chances ofbeing considered for a position. For example, an applicant who has justcompleted his/her PhD degree and whose entire employment historyconsists of temporary jobs at fast-food restaurants may inappropriatelylist these temporary jobs before describing the recently acquired andhighly sought-after PhD degree. Less common but still possible errorsinclude positioning of the Objective section anywhere but at the top ofthe resume, or positioning the References section anywhere but at theend of the resume.

When describing their Education, applicants may include information thatis detrimental to their employment prospects, such as a GPA (Grade PointAverage) that is lower than 3.0. Such GPA would better be left out ofthe resume. Also, applicants may overlook the opportunity to add valueto their resume by describing various jobs they held in order to financetheir tuition, or extra-curricular activities that add value to theirdegree or contribute to the community.

Within the References section, applicants may include names ofreferences without properly preparing those references or even tellingthem that they are mentioned. Such practice may cause a person named asreference to provide inappropriate or even damaging information.

Applicants may also make formatting errors in their resume. For example,they may use page margins that are too small, too large, or unbalanced.They may also create a multi-page resume where the last page is almostempty, leaving the reader feeling that something is missing or theresume is out of balance. Applicants may create resumes that contain toomany pages, where a shorter, more focused resume may produce betterimpression. Applicants may use fonts that are too large or too small forcomfortable reading, or text colors that are too light to be reproducedwell or difficult to scan by a computer scanner. They may use too manytypes of typefaces or too many text colors, distracting the reader fromactual resume content. They may insert unusual characters such as “˜” or“\” by mistake, when they in fact intended to insert a valid characteror a bullet. They may capitalize large sections of the resume toemphasize them, not realizing that readability is greatly impaired bythis practice. The may use a non-standard typeface that only exists ontheir own system, but is not present on other systems. Hence certaincharacters that appear readable on the original system (e.g. a specialtype of bullet) may look completely different on another system. Oneparticular case that comes to mind involves a resume that originallyincluded a bullet character next to each phrase. However when ourcompany received the resume via e-mail, it appeared to contain aquestion mark next to each accomplishment. Obviously this did notreflect well on the applicant.

A number of formatting, structure, and syntax faux pas can still occuron resumes that likewise limit the effectiveness of the resume and maythereby constrain probability of being seriously considered for aposition. One area that is often missed is relating to the consistencyconventions, whereas for example a particular structure may be correctwhen considered individually, but is inconsistent with other aspects ofthe resume, or cover letter (for example, inconsistency incapitalization, indentation, font size, color, end-punctuation of bulletitems, etc.)

Applicants may use various stock phrases such as “Duties included” or“Responsible for” in their resume where a more proactive description oftheir roles would be much more attractive to a prospective employer.Applicants may also use words such as “I” or “me” in a resume where suchwording is usually inappropriate. Other items that are best left out ofthe resume or cover letter include any discussion of salary, reason forleaving, physical attributes such as height, weight, date of birth,social security number, age, gender, marital status, spouse or children,religion, ethnic background and political affiliation.

Applicants may include photographs in their resume, something that isnot recommended for any but few specific occupations such as modeling.

Most of the above issues apply equally to cover letters as well as toresumes. When creating a cover letter, applicants may forget to includea complete address for the employer they are targeting, or forget toinclude “Enclosure” line at the end indicating that a resume isenclosed.

When creating a resume, cover-letter, or similar employment-relateddocument, the applicant wants to create the highest quality, mosteffective document based on their given qualifications. Unfortunately,to enhance effectiveness they are often left creating a number of triesand then visually attempting to determine how effective it might be.

It will be appreciated that resume programs address a need that goesbeyond conventional word processing software, however, that currentresume programs have significant limitations that may reduce theeffectiveness of the final result.

Therefore, a need exists for an automated process to check resumes andcover letters for common errors that are not caught by genericspell-check and grammar-check processes. Such a tool will help userscreate enhanced resumes and cover-letters. The present inventionsatisfies those needs, as well as others, and overcomes the deficienciesof previously developed document processing systems and applications.

SUMMARY OF THE INVENTION

The present invention, roughly described, generally pertains toprocessing of text documents. One embodiment is directed to methods ofevaluating resumes and cover letters being created by job applicants toidentify elements of the resume and letter which should be modified inorder to obtain a favorable review by prospective employers. Resumes,cover letters and other similar documents created specifically to besubmitted as part of a job seeking process are referred to as jobseeking documents.

One embodiment of the present invention is directed at helping jobapplicants verify that their resumes and cover letters are effective,technically correct, appropriately structured, grammatically correct,and appropriately formal. The invention reduces the efforts andguesswork involved in the processing of preparing a resume that will bewell received by employers. It has been realized that candidates areoften screened by an evaluation of their resumes in relation to certaindocument characteristics. A resume document is critiqued by the systemaccording to a number of criteria or rules with appropriate feedbackprovided as to correcting aspects of the resume, which may reduce itseffectiveness and thereby limit its chances for subsequent review.

The invention extends current spell checking and grammar-checking toolstoward the goal of properly checking and providing correction feedbackfor the preparation of resumes and cover letters against a set of rulesspecifically formulated for these types of job seeking documents.Feedback is provided to the user and the system makes specificrecommendations about how to improve the effectiveness of the resumeand/or cover letter.

The present system is preferably implemented as an application programfor a general-purpose computer system, such as a personal computer orweb server. The present invention may be provided as a standalonesoftware application program on a computer system, a feature within anexisting application program (e.g. a word processor or a resume writingprogram), and so forth. The present invention may also be implemented onweb server (Internet, Extranet, Intranet, etc.), or similar, which hostsa web site that allows applicants to check their resumes for errors, andoptionally submit them online. Use of the web site by the prospectiveapplicant may be subject to charges or provided to encourage the use ofassociated services or patronage of select web vendors.

The present invention can be accomplished using hardware, software, or acombination of both hardware and software. When implemented withsoftware, the software used for the present invention is stored on oneor more processor readable storage devices including hard disk drives,CD-ROMs, DVDs, optical disks, floppy disks, tape drives, RAM, ROM orother suitable storage devices. The software can program one or moreprocessors in communication with storage devices, peripherals (e.g.keyboard, pointing device, monitor, printer, etc.), and communicationinterfaces (e.g. network card, modem, wireless device, etc.). Forexample, the present invention can includes software that programs apersonal computer, workstation, server, mainframe, portable computingdevice, etc. In alternative embodiments, some or all of the software canbe replaced by dedicated hardware including custom integrated circuits,gate arrays, FPGAs, PLDs, and special purpose computers.

These and other objects and advantages of the present invention willappear more clearly from the following description in which thepreferred embodiment of the invention has been set forth in conjunctionwith the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of one embodiment of a system for implementingthe present invention.

FIG. 2 is a flow chart describing one embodiment of the operation of thesystem of FIG. 1.

FIG. 3 is a flow chart of one embodiment of a process for converting tofield/section format.

FIGS. 4 and 4 a depict a flow chart of one embodiment of a process forglobal document checks.

FIGS. 5 and 5 a depict a flow chart of one embodiment of a process forname section checks.

FIG. 6 is a flow chart of one embodiment of a process for experiencesection checks.

FIG. 6 a is a flow chart of one embodiment of a process for date checks,used for both experience section and education section.

FIG. 7 is a flow chart of one embodiment of a process for educationsection checks.

FIG. 8 is a flow chart of one embodiment of a process for referencesection checks.

FIG. 9 is a flow chart of one embodiment of a process for hobbiessection checks.

FIGS. 10, 10 a and 10 b depict a flow chart of one embodiment of aprocess for generic section checks.

FIGS. 11A-D are flow charts for checks of cover letters.

FIG. 12 is a flow chart of one embodiment of a process for producing ascore and statistics.

FIG. 13 depicts one embodiment of a process for converting errormessages from an internal form to a user-readable form, and handling ofthe user's request to correct an error.

DETAILED DESCRIPTION

It will be appreciated that the disclosed system may vary as toconfiguration and as to details of the parts, and that the method mayvary as to the specific steps and sequence, without departing from thebasic concepts as disclosed herein.

One example of an implementation of the present invention is depicted inFIG. 1, and represents a system by way of example that includes thefollowing modules:

SCANNER/PARSER 12—the function of this block is to scan the inputdocument and provide its component parts to the other modules of theprogram in a sequential manner using an internal representation of thedocument content.

PATTERN DETECTION 14—the function of this block is to search for knownpatterns such as e-mail pattern (x@y.z), URL pattern (http://x/y.com),resume heading pattern (Experience:, Education:), etc.

ATTRIBUTE DETECTION 16—the function of this block is to process font,paragraph and page attributes such as font size, font color, paragraphindentation and tabulation, page margins, etc.

URL/EMAIL VALIDATION 18—the function of this block is to try and connectto a specific web address or email address via the Internet in order tofind out whether the address is valid

WORD/EXPRESSION DICTIONARY 20—this module contains various lists ofwords and phrases that are used by other parts of the program. Thismodule is language-specific and multiple lists may be used to facilitatechecking of documents in multiple languages.

RULE LOGIC 22—this module contains tables as well as custom code modulesthat look for specific errors in the input document.

REPORT GENERATOR 24—this module formats and presents the errors andwarnings to the user. This may be done as a list of errors, a visualrepresentation of the tests that passed vs. those which failed, orsimilar representation that conveys to the user the results of the checkand optionally overall metrics representing the merit of their document.

The components of FIG. 1 will be operating on one or more computingdevices, including servers, personal computers, main frames, mobilecomputing devices, handheld computing devices, telephones, etc.

Input Format—Field/Section

Form based applications such as WinWay Resume Deluxe published by WinWayCorporation of Folsom, Calif., present the user with a series of formsfor entering their resume. This type of resume entry forms is often usedon web sites as well. Such resume entry-forms prompt the user forspecific resume or letter FIELDS, which are grouped into SECTIONS. Afield is a structure for holding/storing/marking one or more datavalues. Typical resume sections include “Name”, “Objective”,“Experience”, “Education”, and “References.” Other sections can also beused. Each resume section is further comprised of Fields. For example,the “Name” section of the resume is typically comprised of fields suchas “Applicant's name”, “Street Address”, “City”, “State”, “Zip”,“Country”, “email address”, “web address”, etc. For each job listed, the“Experience” section of the resume contains fields such as “Employername”, “Job Title”, “Employment start date”, “Employment end date”,“Employer location”, “Description”, etc. For each school attended, the“Education” section of the resume contains fields such as “School name”,“School location”, “Degree obtained”, “Graduation year”, “GPA”,“Description” etc. Other sections of the resume such as “Objective” or“References” include a single field for the description associated withthat particular section. Similarly, a form-based program may offer theoption to create cover letters, which may also be divided into sectionssuch as “From name/address”, “To name/address”, “Letter body”,“Signature”, etc. The letter's “From name/address” and “To Name/address”sections contain fields such as “Name”, “Street Address”, “City”,“State”, “ZIP”, “Country”, etc.

This field/section structure makes it easy to analyze the text becauseeach item of text is presented within a well-known context, giving thetext analysis logic a head start.

Alternate Input Format—Plain Text

While the Field/Section format is more desirable for comprehensiveanalysis, resumes and letters can also be presented in a plain textformat. These documents may have been prepared with a conventional wordprocessor, or they may have been created by a form-based application butthen compiled into an output format that no longer has filed/sectiondelineation. One embodiment of the present invention converts such plaintext documents into field/section format by looking for specificboundaries in the document.

Top Level Flow Chart

The top-level flow chart for the preferred implementation is shown inFIG. 2. In step 22, the resume or letter is received. In step 24, thesystem determines the document type. A “Free Form” document is parsed instep 26 into its “Field/Section” components to simplify furtherprocessing. If the document is already in this format, such parsing isnot necessary.

In step 28, the system conducts global document checks—checkingattributes that apply to the whole document (e.g. page layout/attributesand/or paragraph attributes), as opposed to checks it conducts on asection-by-section basis. The system then iterates (via steps 30, 32,34, 36, 38 and 62-80) on all document sections, checking each sectionspecifically. First, it performs checks to apply to any section in step36 (for example, looking for web addresses and making sure they areaccessible) and then it proceeds to run checks specific to this sectiontype such as checks specific to the Name section (step 62), Experiencesection (step 66), Education section (step 68), References section (step70), Hobbies section (step 72), From section (step 74) To section (step76), Body of Letter section (step 78), and Signature section (step 80)(alternately, the signature may be provided as part of the Bodysection). Finally, the system produces scores and statistics that arebased on processing of the whole document. For example, it may reportthe number of action verbs found, the total number of pages, etc. Thesystem can also provide a report of all errors and issues. Note that insome embodiments, the reporting of errors and issues is done in realtime. As seen, each section of the document is operated on with its ownset of evaluations, which are based on different sets of rules. Whileeach section may use a different set of rules, it is possible for onerule to be in more than one set of rules and, therefore, be applied tomultiple sections.

Conversion to Field/Section Format

FIG. 3 expands upon step 26 of FIG. 2. The purpose of the process ofFIG. 3 is to convert a free-form text resume into the desiredfield/section format. The conversion relies on several heuristics basedon common patterns used in resumes and letters.

A letter will most often start with the sender's address, which containseasily recognizable patterns such as street address and phone number. Itmay also include an email address and/or a web address. The letter willtypically include a date either before or after the sender's address.The recipient's address will follow, containing street address, city,state and zip, and possibly a country name. The parsing logic may use areference list of cities, states, zip codes and countries to assist itin identifying some of the fields. After the recipient address, a phrasesuch as “Dear . . . ” will mark the transition to the “body” section ofthe letter. The transition from the Body section to the Signaturesection is marked by the salutation, typically “Sincerely,” or“Respectfully,”

Resumes are parsed based on similar heuristics. The resume is likely tostart with the applicant's name, which is parsed the same as in theletter. The rest of the resume is comprised of Sections, each ispreceded by a heading such as “Objective:”, “Experience:”, “Education:”,“References:”, etc. The headings can be recognized by the fact that theystart on a new paragraph, a colon typically follows them, and theybelong to a well known set specific to the language being processed. Forexample, the set includes common variations such as “Employment”,“Experience”, “Professional Experience”, etc.

While the process of parsing plain text into fields and sections is notexact and is based on heuristics, it can be implemented with reasonableaccuracy. Although this step may fail to identify some fields orsections, in particular in unusually formatted resumes or letters, the“Global Document Checks” (step 28 and FIG. 4) and the “Generic” sectionchecks (step 36 and FIG. 10) will still perform well as they are notdependent upon specific section and field boundaries. The performance ofthe section-specific checks relies on correct identification of sectionand field boundaries, and hence will operate better when input ispresented in the field/section format.

In step 150 of FIG. 3, the free form text document is accessed. In step152, the buffer is cleared. If not the end of the file (step 154), thenadd the next paragraph from the input document into the buffer in step156. If it is the end of the file (step 154), then the process of FIG. 3is completed. In step 158, it is determined whether all of the sectionis in the buffer. If not, the next paragraph is added to the buffer instep 156. If so, then the system parses the section information in thebuffer into specific section fields in step 160. In step 162, the newdocument in field/section format is output for temporary or permanentstorage.

Global Document Checks

FIGS. 4, 4 a and 4 b show more detail of the global document checks ofstep 28 (FIG. 2). This series of checks are applied to the document as awhole, without regard to field/section delineation. After receiving theletter or resume in field/section format in step 200, the system checksfor uneven document margins (step 202), margins smaller or larger than acertain size (step 206), last page of the resume being less than ⅓ full(step 212), resume page count that is greater than 2 (step 218),inconsistent indentation of various sections relative to each other(step 222), inconsistent capitalization of repeated items such assection headings or section bodies (step 228), missing sections such asExperience or Education (step 238), a total number of fonts used beingtoo large (FIG. 4 a, step 242), or total number of text colors usedbeing too large (246) If any of these checks find an error, they displayan error or warning message with a suggestion on how to fix the problem(see steps 204, 208, 214, 220, 224, 232, 240, 244, 248).

Name Section Checks

One embodiment of the checks performed on the Name section is depictedin FIG. 5. If a phone number is not included (step 300), an errormessage is generated (step 302). If the phone number is included, itsformat is validated and the user is reminded not to use employer's phonenumber in their resume (step 304). If an area code is not included inthe phone number (step 306), then a warning is generated in step 308. Ifa web address (or URL) is included (step 310), then the system checks tosee that the page is accessible by attempting to access the page with anHTTP command or via the user's web browser (step 312), and also remindsthe user that the page should be work related and not contain items ofpersonal nature in step 314. In another embodiment, the system willprovide the user with a link to the page and, after the user clicks onthe link, the system will attempt to access the page. If the URL is notreachable, an error is reported in step 316. If an email address is notspecified (step 318), the user is reminded to include it in step 320. Ifemail address is included (step 318), the email is checked for validityby trying to access the mail server designated for receiving mail at thespecified domain (by sending a test e-mail message to that addressand/or by querying a mail server designated for that domain) in step322. Alternatively, the user can be provided with a “mail to” tag thatwhen selected is used to send an email to the target address. If theemail address is not valid, an error is reported in step 326. If theemail address is valid, then the user is reminded to only use personalemail addresses in step 324.

In step 328, the system verifies that the name field was filled in. Ifnot, an error is reported in step 330. If the name was not emphasized(boldface, different typeface, larger point size or different color)(see step 340), an error is reported in step 342. If the address is notproperly formatted (to contain a street address or PO box, a valid zipor postal code, etc) (see step 344), then an error is reported in step346. In step 348 (see FIG. 5A), the system checks whether a second phonenumber is provided, and if not, advises the user (see step 350) toinclude a second number such as a cell-phone number to ensure that theapplicant can be easily reached. In step 352 the system checks whetherthe name field is comprised of at least two words, and that it does notliterally equate to the value originally present as a stand-in (e.g.“Your Name”) Errors and warnings can be reported to a file, process,monitor, printer, speaker, pages, telephone, etc.

Experience Section Checks

One embodiment of checks conducted on the Experience section is depictedin FIG. 6. The process receives the Experience section in section/fieldformat. In step 370, it is determined whether there are more than fivejobs listed in the Experience section. If so, a warning is reported tothe user in step 372. In step 374, it is determined whether there isonly one job listed. If so, a warning is displayed to the user in step376. In step 378, employment dates are checked for all jobs in theexperience section. This step is further expanded in FIG. 6 a. In step388, the process points to the first job in the jobs listed in theExperience section. In step 389, it is determined whether there are anymore jobs to process. If not, the process of FIG. 6 is done. If thereare more jobs to process then in step 390 it is determined whether thedate, title, or employer fields are all filled for the particular jobunder consideration. If not, an error message is displayed in step 391.In step 392, any URLs and email addresses found in the descriptionportion of the experience are checked to be valid and accessible, asdiscussed above. After step 392, the process loops back to step 389. Ifit is determined that there are more jobs to check, the next job ischecked by repeating steps 390-392.

Date Checks

The date checks are generally common to both the Experience section andthe Education section, since both are expected to contain entries withvalid dates in reverse-chronological order. Each job may indicate asingle date such as a year, or a pair of dates corresponding to thestart and end dates of the position. The end date of the most recentposition may be “present.” In an Education section, each school willtypically have one date field corresponding to the graduation date,although some implementations may designate two fields to indicate startand end dates for that education time period. Typically a candidate whohas graduated will only indicate graduation year, where a non-graduatingcandidate may indicate the years during which they attended the schoolor college. While the overall logic for date checks may be sharedbetween Experience and Education, the logic may take slightly differentpaths depending on which case it is.

In step 400, dates are parsed from their text format to a more exactrepresentation. This parsing must allow for a wide variety of acceptableformats, such as “year only”, “month and year”, and even, though lesscommon, “day, month and year.” Further, it must allow for sub-typeswithin these types, as there are many valid ways to indicate a date on aresume. For example, the following are all valid formats: “2000”,“October 2000”, “Oct 2000”, “1-Oct-2000”, “10-1-2000”, and even itsEuropean equivalent “1-10-2000”, depending on the locale. The value“Present” is also considered a valid date when used as the end-date of arecent job, and is equal to today's date for comparison purposes.

If the dates read are invalid, out of range, or cannot be properlyrecognized and/or translated (step 401), then warnings are generated instep 402. Great care must be taken to parse as many date representationsas possible to avoid annoying error messages at this stage. Also, unlikea standard computer date which contains exact day and even time, theparsed dates may only indicate a year, a month and a year, or a day,month and year. Flags are used to indicate which fields within theparsed date are valid. Also, special comparison logic is used forcomparing this special type of dates. For example, “1/10/02” is GreaterThan “1/8/02”, but is not necessary greater than “1/02” or “2002”.

In step 403, the first date test is applied—making sure that the “StartDate” of a job is not greater than the “End Date” of that job. This testis only applied to Experience section and is only used if both Start andEnd dates are specified. There is also a related case where only onedate is specified for a job, such as “1998”. It is valid to specify asingle month or year as the time period for a job, but using a singlemonth or day is not recommended as it may suggest that the job lastedonly one month or one day. The special date comparison logic is used totake into account valid dates that contain only year or only month andyear.

In step 405, the period of each job is compared against the period ofeach other job, in search for overlaps between jobs. Such overlaps arereported in step 406. An overlap may not indicate an error as it isentirely possible for a person to hold more than one job at one time.When an overlap is detected, the error message is properly qualified toindicate that this may or may not be a problem.

In step 407, the jobs or schools are checked for ordering of theirdates. If the dates are not reverse-chronological (that is, most recentjob or school first), a warning is reported. Note that in case ofExperience section where both start and end date are specified, we arecomparing date-pairs, or date-pair to a single date. The comparison isnot difficult because we can assume that the end date is always greaterthan the start date, since any case to the contrary was already reportedin previous step as an error. Likewise, we need not worry about overlapssince those were already reported in previous steps. Hence, when twodates are specified, step 407 may use the end date for comparison andignore the start date.

Step 409 checks for possible time gaps between jobs. Again, buildingupon previous checks and error reports, one can assume that the jobs arealready ordered in reverse-chronological order and that they do notoverlap. Hence one need only compare each job's duration to the nextjob's duration when looking for time gaps. A more elaborate scheme couldalso be used, where gaps are properly evaluated even if the jobs are notpre-sorted. This would be done by creating a special set of sorted jobsand then running this test on them. Time gaps may not necessarily be anerror but they will catch the trained eye of an employer. Step 410reports such gaps and gives the user an opportunity to correct them ifthey are indeed an oversight.

Step 412 is unique to the Education section. Older candidates may notwant the potential employer to know their age, yet a graduation yearthat is 20 years or older could give away their estimated age. Hencestep 412 checks graduation date and if it is older than a pre-set numbersuch as 20 years, a warning is issued in step 414 and the user isadvised to consider dropping the date. Likewise, a missing graduationdate is also reported as a warning and the use is advised to determineif he/she should or should not include such date.

In step 416, date formats are compared to each other. While the user isallowed to use a wide range of date formats, once chosen, the dateformat should be consistent throughout the section and preferablythroughout the resume. Hence a job that starts on “June 1998” and endson “3/99” would create an error message, while a job that starts in“1998” and ends in “1999” will not generate such error. One may alsoallowed for some dates to contain month and year, while others containonly year, as long as common format is used. In that case, a job thatstarts in “1998” and ending in “June 1999” may be acceptable. This typeof dates are used when applicants are trying to hide short periods ofunemployment, or mask the fact that a job did not last more than a fewmonths. A check that is too tight and stringent would cause userfrustration, and hence the check may apply a reasonably wide acceptancecriteria for dates.

Education Section Checks

One embodiment of the checks conducted on the Education section of theresume is listed in FIG. 7. Step 420 applies the relevant date checksdepicted in FIG. 16 as described above. Step 424 checks if the Educationsection contains both a high-school and a college. A high school isrecognized by the word “High School”, while a college is recognizedthrough words such as “College” or “University”. If both a college and ahigh school are specified, a warning is generated in step 426 and theuser is advised to eliminate the high-school.

In step 428, the process points to the first school listed in theEducational Experience section. In step 430, it is determined whetherthere are anymore schools to process. If not, the process of FIG. 7 iscompleted. If there are more schools to process, then in step 432, it isdetermined whether all fields within the current listing of the currentschool being processed are filled in. If not, a warning message isreported in step 434. In step 436, it is determined whether the listedGPA is less than 3.0. This is done by looking for the pattern “GPA”,“G.P.A”, or “Grade Point Average” and a decimal number adjacent to thepattern. If so, a warning is reported to the user that indicates that ifthe GPA is not 3.0 or better, then it should be omitted. After step 436(step 438), the process loops back to step 430, points to the nextschool listed, and repeats steps 432-438 if there are more schools toconsider.

References Section Checks

One embodiment of the checks conducted on the References section of theresume are depicted in FIG. 8. The References section usually containsthe phrase “available upon request” or “references available uponrequest.” However, some applicants may include other text, which islikely to be names of references. One implementation looks for thefollowing condition—the word “Request” should be present, and thereshould be no more than 6 words in total. This allows for a wide range ofacceptable formats while ensuring that the user did not list a number ofpersons as references. Other implementations may be more stringent andlook for specific acceptable words for this section. If the contentincludes text other than the traditional “available upon request” (step450), then the system reminds the user to make sure that these peoplehave agreed to be their references and are properly briefed to avoid anysurprises in step 452.

Hobbies Section Checks

One embodiment of the checks conducted on the Hobbies section of theresume are depicted in FIG. 9. Independent of the content, the user isreminded to only list job-related hobbies in step 460.

Generic Section Checks

One embodiment of the generic checks conducted on all (or a subset) ofthe sections of the resume or letter are depicted in FIG. 10. In step500 of FIG. 10, the system checks for inconsistent bullet endpunctuation. That is, the system verifies that all bullet items haveconsistent end punctuation. If not, then in step 502 a warning isdisplayed to the user to make sure that the end punctuation isconsistent. In step 504, the system checks to determine whether thereare any unusually large or small fonts. If so, a warning is displayed tothe user in step 506 to use fonts between 10 and 14 points. In step 508,the system determines whether there are large sections of capital text.If so, a warning is generated in step 510 about low readability. In step512, the system determines whether there is light-colored text. If so, awarning is displayed to the user in step 514 that such text will notreproduce well and suggests that black be used. In step 516, the systemchecks for various words and expressions that have no place in a resumeor letter, such as “duties included”, “responsible for”, “me”, “I”,profanity, the words weight, height, salary, pay, reasons for leaving,gender words such as male and female, etc. If any of these expressionsare found (step 518), then a warning is displayed or reported to theuser in step 520.

In step 522, all patterns that appear to be URLs (even with slightsyntax problems) are identified. For example, “http://my*company.com”would indicate that the user wanted to include a web address, althoughthis is not a valid URL. In step 523, the potential URLs are checked forvalid syntax. Invalid URLs are reported in step 526. For valid URLs, thesystem tries to retrieve the page, thus finding if the page isaccessible and giving the user an opportunity to verify that the page isindeed the one they intended. Step 527 causes the process to repeat foreach potential URL.

Step 528 identifies patterns that appear to be e-mail addresses, even ifthey are not syntactically correct. For example, joe@ab*c.com is likelyto indicate that the user wanted to use an email address, yet it is nota valid e-mail. In step 529, the potential email address is checked forsyntax and syntax errors are reported in step 530. If a valid emailaddress is found, it may be tested in step 531 by contacting the e-mailserver or by sending an email to that address. The user should beconsulted before an email is sent. Step 532 causes the process to repeatfor each potential e-mail address.

Step 533 checks the text for unusual characters that could have beeninserted in error by the user, such as “˜”, “\”, etc. It may also lookfor symbols that are unique to a particular symbol typeface but mayappear completely different after being exported to another typeface(e.g. when sent as e-mail). Such errors are reported in step 534. Ingeneral, the approach to text is very conservative to make sure that theresume or letter will remain readable even after they are transformedthrough e-mail or export.

Step 540 in FIG. 10 b looks for sections that are present but completelyempty. For example, a user may start their resume with a template thathas an empty Experience section or an empty Education section, and leavethat section unfilled. This error will be reported in step 541.

Step 542 looks for pictures that are included in the resume or letter.It makes not attempt to determine the content of the picture, butadvises the user in step 543 not to include their own portrait in theresume or letter, unless they are in a very specialized field such asmodeling.

Step 544 looks for remnants from a resume or letter template, wherecertain fields were left empty for the user to fill in. For example,<your profession> is a template for the user to fill-in theirprofession. If such literal value is found in the text, it is reportedin step 545.

Step 546 looks for jobs or schools where only skeleton information isprovided but no description is included. A job with employer, title,dates but no other description will qualify. A more common case is aschool/degree pair without any further information. The user is advisedin step 547 to elaborate on this job or school if space allows. Step 548executes a spell check and possibly grammar check on the whole documentand reports any errors.

Letter Checks

One embodiment of the checks applied specific for letter sections aredepicted in FIGS. 11A-D. Step 550 checks the “To” section of the letterfor a properly formatted name, title, company name, address, zip/postalcode etc. any error is reported in step 552, if necessary. The “From”section of the letter is checked for the same criteria as the Namesection of the resume in step 570. Step 572 checks that the letter dateis valid, and reports any errors in step 574. See FIG. 5 for informationabout checking the Name section. The Body section of the letter ischecked to make sure it starts with “Dear” (see step 560 of FIG. 11C).If the Body does not start with “Dear” (step 560), then a warning isreported in step 562 that a letter is customarily started with the word“Dear.” A letter may include a separate “Signature” section or theletter signature may be part of the Body. The appropriate section of theletter is checked to make sure that it includes the phrase “Enclosure”or its abbreviation “Enc.” (step 580). If it does not include anindication of an enclosure, then a warning is generated in step 582 toindicate that an enclosure is included if the user is including a resumewith the cover letter.

Score And Statistics

The score and statistics are designed to give the user as muchinformation as possible, yet allow them to determine in a glance thenumber and severity of errors detected in their document. The user mayiterate through the checking process several times, so a quick summaryof the errors is of great benefit. One particular embodiment produces areport on the screen and also allows to print or export the report. Inthis particular implementation, there are three types ofmessages—“alerts”, which are potentially severe errors, followed by“warnings”, and “notes”. “Notes” may be completely benign and a noteshould be considered as an advisory rather than an error. The top of thereport in this particular embodiment indicates number of alerts,warnings and notes, number of words in the document, number ofquantitative expressions, number of action verbs, etc. Following thatheader there is a list of the most severe messages—“Alerts”, followed bya list of “Warnings” and a list of “Notes”. For example, a case ofmissing user name on a resume will be reported as an “Alert”, a dateoverlap between two jobs will be a “warning”, while a detailed list ofaction verbs used will be reported as a “Note”.

One embodiment of the process for producing a score and/or statistics isdepicted in FIG. 12. The program produces various figures of merit aboutthe resume and letter, such as number of action verbs used, number ofquantitative expressions (“managed 10 employees”, “increased revenue by30%”), readability factor (a function of white space and fonts used) andother figures of merit describing the resume and/or letter.

In step 600 of FIG. 12, the system reports the number of action verbs inthe cover letter, resume or other document. In step 602, the systemreports the number of quantitative expressions found by looking forpatterns such as “One”, “Two”, “Percent”, etc. In step 604, the systemreports the readability factor based on how many readability errormessages were generated (described above). In step 606, the systemreports the number of pages and number of message by severity: “Alerts”,“Warnings” and/or “Notes”. In step 608, the system reports a list of thelongest and shortest words found in the document, based on theexpectation that very long words and very short words are more likely tobe part of an error or typo. In step 610, the system can report otherfigures of merit for the document as customized by user or by anyoneimplementing the present invention. Step 612 produces a general warningand disclaimer advising users not to rely solely on the system to verifytheir resume and letter, but read their document carefully and possiblyenlist the help of friends.

An alternative method of handling the various messages is to show onemessage at a time to the user, allowing them to decide whether they wishto correct the error. It can then offer them the option to correct theerror within a dialog, or take them to the document editing environmentat the appropriate context for fixing the error. Yet another methodcould offer a “hot-link” from the error report into the specific contextof the error so the user can jump there with a single click and correctthe error. Yet another method could offer hot-links that lead to helpdocuments that further expand on each error.

In one embodiment, a dialog box will be displayed while the abovedescribed tests are run. The dialog box will display which test iscurrently being run. In one embodiment, the dialog box will alsoindicate the results of the tests in real time.

In one embodiment the system will internally store information abouteach error it found. FIG. 13 depicts one embodiment of a process forconverting error messages from an internal form to a user-readable form,and handling of the user's request to correct an error. The variouscheck routines (checking for text problem, font problems, etc) havealready produced error records in an internal format (650), whichcontains an Error Code and an Error Context. The Error Code is simply akey into a text-based error table, where each key directly correspondsto a specific text message. The Error Context provides error-specificinformation on where the error is and how to fix it. For example, if theerror was caused by a particular word within a field, the Error Contextwould be a pointer to that field, the character index of the word inquestion and the length of the word. If a font that is too light causedthe error, the Error Context would identify the font in question by itsrelative number in the font table. This Error Context allows us to findthe error and correct it intelligently when asked by the user.

Step 660 implements the conversion of error records from the internalError Code to a user readable format. The error code is looked up in atable and converted to a plain text message. A clickable link is added,with the user-readable text “Fix Me”, referring to the action of fixingthis error. The target of the link includes an encoded form of the ErrorContext, thus allowing us to invoke an error-correction user interface.The links are displayed to the user a part of step 40 of FIG. 2. Inother embodiments, instead of using a link, other user input elementscan be used such as a button, an image, etc.

Step 670 depicts the program waiting for the user to click on any “FixIt” links. Once the user clicks on a link, step 680 determines whetherthe error can be fixed automatically, based on the Error Contextinformation encoded into the link. If the error can be fixedautomatically, step 690 will fix the error and report what it has done.If the error cannot be fixed automatically, step 700 will invoke a userinterface that allows the user to change the document to fix the error.The user interface is driven by the Error Context information.

The specific method for automatic error correction will vary dependingon the type of error encountered. For example, if the error involvestext that is too light, the automatic correction would change the textcolor to the color of the surrounding text that is not too light, or, ifnone found, it will change it to black. In case of a left page marginthat is too narrow, the automatic correction will change the left marginto an acceptable value such as 1″, and will also change the right marginso that both margins are equal. In case of a font that is too small, theautomatic correction will change the font size to the size of thesurrounding text that is properly sized, or, if none found, will changeit to a default size such as 11 points. If the error involves theperson's name on the resume not being emphasized by boldface or largerfont size, the automatic correction will apply a larger font size and/orboldface attribute to the name. In case of an employment date that iscorrect on its own but does not conform in its format to the otherdates, the automatic correction will re-format the date to conform tothe format of other employment dates in the resume.

FIG. 13 describes how an error can be displayed in a report form, andcorrected via a “Fix It” handler. An alternate way of displaying andcorrecting the error is through an interactive user interface such as adialog, which displays one error at a time and offers to user to fixthat error. This is similar to the way a typical spell-checker operates,offering the user the opportunity to see the misspelled word and choosefrom several possible actions such as “delete duplicate word”, “ignore”,etc. For example, in the case of a bad date, this approach will show theuser the date(s) that caused the error, explain the problem, and allowthe user to choose an automatic fix, if applicable, or enter a correctdate by typing it into a field. In case of a text that is too light incolor, the user will see a dialog that allows to modify the color ofthis particular text.

Note that the above discussion and the included figures describe thedisclosed individual tests in a particular order. However, variousimplementations may differ in ordering of operations and in hierarchicalstructure. The order or hierarchy of execution is not critical to theoperation of the invention.

Accordingly, it will be seen that this invention provides for thecreation and editing of more effective resumes, cover-letters and otherdocuments. The system is adapted with a rules database containinginformation relating to the characteristics of a “correct” and effectiveresume. It will be appreciated that the features of the invention wereembodied by way of example, and not of limitation, and that one ofordinary skill in the art may implement a number of variations thereuponwithout departing from the teachings of the invention as claimed.

Below is described one example of an implementation of the presentinvention. This particular implementation uses a 3-step “wizard”interface to check a resume or letter for errors. The first step of thewizard tells the user about the checking feature. The second step of thewizard executes the checks and indicates progress to the user via aprogress bar and text messages. The last step of the wizard displays theresults.

Since the implementation includes a large number of checks, the checksare implemented as a tree of “Check” procedures, where some “Check”procedures may in turn call other “Check” procedures that are morespecialized. The typical structure of a “Check” procedure is one of thefollowing:

-   1. <Procedure name>(pointer-to-a-section, pointer-to-a-subsection,    pointer-to-results-set)

If the pointer-to-sub-section is NULL, then this procedure will checkthe specified section (e.g. Experience) for section-level attributes. Ifthe pointer-to-sub-section is not null, then the same procedure willcheck the specified sub-section (e.g. a specific job within theExperience section).

-   2. <Procedure name>(pointer-to-document, pointer-to-results-set)

This procedure will check the document as a whole for global attributessuch as margin size or consistency of headings.

Check procedures may be applied to a Resume document or to a Letterdocument. There are different error messages for Resumes and forLetters, and the proper message is chosen depending on the type ofdocument being checked. Some checks apply only to resumes, while othersapply only to letters or to both letters and resumes.

For each section, the program invokes the “Section Check” procedurepassing to it a pointer to the Section and a NULL for the Sub-Section.For each Sub-Section of this Section, the program then calls the“Section Check” procedure again, passing it a Section pointer and aSub-Section pointer. This is repeated for all sections/subsections. Whenall the sections/subsections were checked, the program invokes the“Document Check” procedure. Document Check is done last because it usesinformation collected by the Section Check procedures, such as the listof action verbs and the list of quantitative expressions.

The execution of a “Section Check” (for section or sub-section) or a“Document Check” is called a “Step,” Steps are a user-visible eventsused to advance the progress bar that the user sees on the screen. Atimer is used to trigger the execution of each Step. Hence, the usersees a progress bar that moves at approximately a constant pace, and theuser interface remains responsive between the individual steps.

The “Section Check” Procedure calls more specialized check procedures toimplement the following checks:

-   1. “Text Checks”-   2. “Name Checks”-   3. “Education Checks”-   4. “Experience/employment Checks”-   5. “Date Checks”-   6. “Letter ‘To’ Section Checks”-   7. “References Checks”

As indicated above, the “Section Check” can be invoked to check aSection or a Sub-Section. The same is true for the more specializedcheck procedures that it calls.

The “Text Checks” procedure(s) are applied to the text content of eachresume section and the fields of its underlying sub-sections. Forexample, in case of an Experience section, these checks will apply tothe section heading “Experience” as well as to each job sub-section andthe text fields that describe that particular sub-section such asemployer name, job title, etc.

The checks include:

-   -   1. Check for text color too light    -   2. Check for font size too small    -   3. Check for unusual symbols or characters    -   4. Add any action verbs to a global list    -   5. Add any misspelled words to a global list    -   6. Check for prohibited single words such as “age”, “male”,        “female”, etc.    -   7. Add any quantitative expressions (e.g. “five”) to a global        list    -   8. Check for prohibited multiple-word expressions such as        “Duties included”    -   9. Check for empty fields delineated by angled brackets, such as        “worked for <number of years>”

“Name Checks” procedure(s) perform the following checks:

-   -   1. Check for an empty “Name” field    -   2. Check for “Name” that equals the default value “Your name”    -   3. Check for empty “email” field.    -   4. If email is included, advise user not to use employer's email    -   5. Advise user to verify that the e-mail address is correct and        can be reached    -   6. Advise user to ensure that an answering machine is connected        to each listed phone    -   7. Check that phone number is included    -   8. Check that a cell phone number is included by looking for the        string “Cel” in the phone numbers    -   9. Check that the name is comprised of more than one word    -   10. If a phone number is listed, advise user not to use        employer's phone    -   11. Verify that phone numbers include area code    -   12. Check that street address is not empty    -   13. Verify that there is a valid zip/postal code    -   14. If a web page address is included, advise user to verify        that the information in the page is appropriate    -   15. If a web page address is included, create a clickable link        to that page and advise the user to verify that the page is        accessible    -   16. Verify that the Name field is emphasized relative to the        Address field, by using larger font size, or different color or        different boldness

The “Education Checks” procedure(s) perform the following checks:

-   -   1. If checking a section, verify that the section does not        include listings of both “High School” and higher educations        such as “College” or “University”    -   2. If checking a sub-section, and the description field of the        sub-section includes reference to grade-point-average (GPA),        then verify that the numeric value of the GPA is at least 3.0.        This is done by looking for character strings such as “GPA”,        “G.P.A”, and “Grade Point Average”    -   3. If checking a sub-section, verify that the following fields        are not empty: School Name, School Location, Degree, and        Description.

The “Experience/Employment Checks” verify that the following fields arenot empty: Employer, Location, Job Title, and Description.

If checking a resume document, and the “Dates Checks” procedure iscalled to check a Section (not a sub-section), this procedure will:

-   -   1. Parse the date fields of all sub-sections that contain dates,        into an array containing one entry for each sub-section. Each        entry may include one or two dates. The date parsing logic        allows dates to be partial, that is, only year, or only month        and year. Special flags are used to indicate which parts of the        date are valid and what format this date takes. These flags are        later used to compare partially-specified dates to each other    -   2. In an Experience or Employment section, for each sub-section        with both Start and End date, verify that the dates are valid,        and that Start date is not later than End date, and that the        Start date does not equal “Present”. If only one date is        specified, and it is valid, verify that it specifies a year        (e.g. “1998”), and is not specific as to the month and/or day.    -   3. In an Education section, verify that a graduation date is        included and is valid. If a date is valid, and that date is more        than 20 years ago, alert the user that the education date may        reflect their age and there may be a consideration to remove        that date.    -   4. In an Experience section, look for date overlaps between        sub-sections    -   5. Verify that sub-sections are ordered in reverse-chronological        order    -   6. If this is an Experience or Employment section, look for gaps        between sub-section dates

The “Letter ‘To’ Section Checks” checks the part of the letter thatdescribes who the letter is sent to. If checking a sub-section, performthe following checks:

-   -   1. Verify that the date field contains a valid date    -   2. Verify that these fields are not empty: Name, Position/Title,        Company Name, Street Address    -   3. Verify that the address contains a valid zip code

The “References Checks” procedures ensure that applicants do not includea list of names as their references, but instead defer the subject ofreferences to be provided upon request. If the procedure is called tocheck a sub-section of a References section, the program will performthe following checks:

-   -   1. Look for an empty “references” section    -   2. Look for a section that has more than 6 words, or that does        not contain the word “Request.” Hence “Available upon request”        is considered an acceptable form, while “John Smith, 555        Richmond Blvd., San Diego” will trigger an error message.

The “Document Check” Procedures implements the following:

-   -   1. Check values of page margins and indent (“indent” is the        width of an imaginary left column containing employment dates in        certain resume styles), to ensure that respective margins match        each other and all values fall within acceptable range.    -   2. Check resume headings for improperly ordered or missing        headings. For example, check that the Name section is present        and that the Objective section is after, and not before, the        Name section. Check that both Experience and Education sections        are present, and that References section, if included, is the        last section.    -   3. Check consistency of capitalization in headings    -   4. Check consistency of character attributes (e.g. bold, italic)        in headings    -   5. Summarize statistics—action verbs found, quantitative        expressions fount, etc.    -   6. Produce a legal disclaimer and add it to the report

The last wizard step displays a report to the user. The report can alsobe printed or saved in HTML format. The report includes key statistics,as well as a list of messages of various severity levels. The mostsevere messages—alerts—are listed first, followed by warnings, followedby the least severe messages—notes (which may report suggestions).

The embodiments described above evaluate job seeking documents usingrules specific to job seeking documents. The present invention can beextended to other types of documents by using rules specific to thoseother types of documents.

The foregoing detailed description of the invention has been presentedfor purposes of illustration and description. It is not intended to beexhaustive or to limit the invention to the precise form disclosed. Manymodifications and variations are possible in light of the aboveteaching. The described embodiments were chosen in order to best explainthe principles of the invention and its practical application to therebyenable others skilled in the art to best utilize the invention invarious embodiments and with various modifications as are suited to theparticular use contemplated. It is intended that the scope of theinvention be defined by the claims appended hereto.

1. A method of performing an evaluation specific to job seekingdocuments, comprising: accessing a resume; automatically, by a computer,evaluating one or more data items in the resume using criteria specificto resumes in order to identify one or more errors; automatically, bythe computer, storing error information for the one or more errors, thestored error information includes an indication of a type of error anderror context information, the error context information includes anindication of where the respective error is in the resume; for at leastsome of the errors, automatically, by the computer, converting theindication of the type of error to a user readable form and displayingthat user readable form with a selectable user action item; receiving,at the computer, a selection of at least one of the displayed selectableuser action items; fixing an error in the resume associated with theselected user action item in response to receiving the selection.
 2. Themethod of claim 1, wherein: the error context information includes anindication of how to fix the respective error; the selectable useraction item is a link that includes a form of the respective errorcontext information; and the fixing of the error in the resume isperformed based on the form of the respective error context informationin the link.
 3. The method of claim 1, wherein: the displaying of theuser readable form with the selectable user action item is performed ina report.
 4. The method of claim 1, wherein: the displaying of the userreadable form with the selectable user action item is performed in adialog box.
 5. The method of claim 1, wherein: the resume includesmultiple sections of different types of data; the criteria specific toresumes includes global document rules that are not specific to one typeof data; and the criteria specific to resumes includes multiple sets ofsection rules, each set of section rules defines one or more errorconditions in and specific to a subset of one or more sections of theresume, each set of section rules is different from other sets ofsection rules and is applied to a different sections of the resumeduring the evaluating.
 6. A method of performing an evaluation specificto job seeking documents, comprising: accessing a resume; automatically,by a computer, evaluating one or more data items in the resume usingcriteria specific to resumes, the step of evaluating comprisesrecognizing an identifier of a destination on a global network and usingthe identifier to automatically test whether the destination exists andis reachable; and if the destination does not exist or is not reachable,automatically, by the computer, creating a report that indicates thatthe destination does not exist or is not reachable.
 7. The method ofclaim 6, wherein: the identifier is a Uniform Resource Locator.
 8. Themethod of claim 7, wherein: the using the identifier to automaticallytest whether the destination exists and is reachable includes attemptingto load a web page identified by the Uniform Resource Locator.
 9. Themethod of claim 8, further comprising: scanning the web page todetermine whether the web page contains content predetermined to beundesirable.
 10. The method of claim 6, wherein: the identifier is anemail address.
 11. The method of claim 10, wherein: the using theidentifier to automatically test whether the destination exists and isreachable includes attempting to contact an email server associated withthe email address.
 12. A method of performing an evaluation specific tojob seeking documents, comprising: accessing a resume in an electronicfree form format; converting the resume from free form format to aplurality of sections of data, with each of the sections having one ormore fields of data related to a specific sub-topic of the resume forthe respective section, each of the plurality of sections is for adifferent subtopic; automatically, by a computer, evaluating one or moredata items in the resume using criteria specific to resumes, the step ofevaluating includes separately using the criteria to recognizepredetermined issues in each of the plurality of sections; andautomatically, by the computer, creating a report that identifies issueswith the plurality of sections.
 13. The method of claim 12, wherein: thestep of converting includes accessing paragraphs, parsing the paragraphsinto specific fields for a respective section and repeating theaccessing and parsing for additional sections of the resume.
 14. Themethod of claim 12, wherein: the sections include an Experience sectionand an Education section.
 15. The method of claim 12, wherein: after theconverting, the resume includes multiple sections of different types ofdata; and the criteria specific to resumes includes multiple sets ofsection rules, each set of section rules defines one or more errorconditions in and specific to a subset of one or more sections of theresume, each set of section rules is different from other sets ofsection rules and is applied to a different sections of the resumeduring the evaluating.
 16. The method of claim 15, wherein: the criteriaspecific to resumes further includes global document rules that are notspecific to one type of data and are used during the evaluating.
 17. Amethod of performing an evaluation specific to job seeking documents,comprising: accessing a resume; automatically, by a computer, evaluatingone or more data items in the resume using rules specific to resumes,the evaluating includes using the rules to recognize predeterminedissues with visual appearance of the resume separate from substantivecontent of the resume; and automatically, by the computer, creating areport that identifies issues with visual appearance of the resume. 18.The method of claim 17, wherein: the predetermined issues with visualappearance includes uneven margins, margins out of range, page use,inconsistent indentation, inconsistent fonts, too many fonts, too manycolors, punctuation, formatting, and use of symbols.
 19. The method ofclaim 17, wherein: the substantive content of the resume includes dateinformation, experience data, and facts about education.
 20. The methodof claim 17, wherein: the evaluating further includes looking for errorsin the substantive content of the resume.